package com.ruoyi.crm.domain;

import java.util.List;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 服务合同对象 service_contract
 *
 * @author ruoyi
 * @date 2021-08-30
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ServiceContract extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键id */
    private String id;

    /** 服务合同编号 */
    @Excel(name = "服务合同编号")
    private String scNo;

    /** 客户名称 */
    @Excel(name = "客户名称")
    private String customerName;

    /** 签约日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "签约日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date contractDate;

    /** 合同类型 */
    @Excel(name = "合同类型")
    private String contractType;

    /** 合同状态 */
    @Excel(name = "合同状态")
    private String contractStatus;

    /** 负责人 */
    @Excel(name = "负责人")
    private String follower;

    /** 负责人 */
    @Excel(name = "联系人姓名")
    private String telName;

    /** 负责人 */
    @Excel(name = "合同订单")
    private String contractNo;

    /** 负责人 */
    @Excel(name = "收款日期")
    private String collectionDate;

    /** 负责人 */
    @Excel(name = "出库状态")
    private String checkoutStatus;

    /** 负责人 */
    @Excel(name = "服务开始日期")
    private String beginDate;

    /** 负责人 */
    @Excel(name = "服务到期日")
    private String endDate;

    /** 负责人 */
    @Excel(name = "已服务次数")
    private String yServiceTimes;

    /** 负责人 */
    @Excel(name = "应服务次数")
    private String sServiceTimes;

    /** 负责人 */
    @Excel(name = "已收金额")
    private String collectionAcy;

    /** 负责人 */
    @Excel(name = "应收金额")
    private String collectionAcs;

    /** 负责人 */
    @Excel(name = "已发货金额")
    private String yDeliverAmount;

    /** 负责人 */
    @Excel(name = "未发货金额")
    private String wDeliverAmount;

    /** 负责人 */
    @Excel(name = "未发货数量")
    private String wDeliverCount;

    /** 负责人 */
    @Excel(name = "已发货数量")
    private String yDeliverCount;

    /** 负责人 */
    @Excel(name = "已开票金额")
    private String yInvoiceAmount;

    /** 负责人 */
    @Excel(name = "未开票金额")
    private String wInvoiceAmount;

    /** 负责人 */
    @Excel(name = "条款与条件")
    private String condition;

    /** 负责人 */
    @Excel(name = "备注信息")
    private String markInfo;

    /** 负责人 */
    @Excel(name = "评论信息")
    private String comment;


    /** 顾客产品信息信息 */
    private List<CustomerProduct> customerProductList;

    public void setId(String id)
    {
        this.id = id;
    }

    public String getId()
    {
        return id;
    }
    public void setScNo(String scNo)
    {
        this.scNo = scNo;
    }

    public String getScNo()
    {
        return scNo;
    }
    public void setCustomerName(String customerName)
    {
        this.customerName = customerName;
    }

    public String getCustomerName()
    {
        return customerName;
    }
    public void setContractDate(Date contractDate)
    {
        this.contractDate = contractDate;
    }

    public Date getContractDate()
    {
        return contractDate;
    }
    public void setContractType(String contractType)
    {
        this.contractType = contractType;
    }

    public String getContractType()
    {
        return contractType;
    }
    public void setContractStatus(String contractStatus)
    {
        this.contractStatus = contractStatus;
    }

    public String getContractStatus()
    {
        return contractStatus;
    }
    public void setFollower(String follower)
    {
        this.follower = follower;
    }

    public String getFollower()
    {
        return follower;
    }

    public List<CustomerProduct> getCustomerProductList()
    {
        return customerProductList;
    }

    public void setCustomerProductList(List<CustomerProduct> customerProductList)
    {
        this.customerProductList = customerProductList;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("scNo", getScNo())
                .append("customerName", getCustomerName())
                .append("contractDate", getContractDate())
                .append("contractType", getContractType())
                .append("contractStatus", getContractStatus())
                .append("follower", getFollower())
                .append("updateTime", getUpdateTime())
                .append("customerProductList", getCustomerProductList())
                .toString();
    }
}